package com.itheima.health.jobs;

import com.alibaba.dubbo.config.annotation.Reference;
import com.itheima.health.common.RedisConst;
import com.itheima.health.service.OrderSettingService;
import com.itheima.health.utils.QiniuUtils;
import com.qiniu.common.QiniuException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.Calendar;
import java.util.Set;

/**
 * @Author AG
 * @Date 2020/11/21 16:22  定时清理预约设置历史数据(今天0点以前的所有) 实现类
 * @Since 1.0.0
 */
@Slf4j
public class ClearOrderSettingJob {
    //记得在job模块的pom里,配置service模块的依赖!否则控制层模块用不了该模块下的接口!
    //controller层需要用dubbo进行远程调用,并实例化到IOC容器
    @Reference
    private OrderSettingService orderSettingService;

    /**
     * 定义清理 预约设置历史数据的任务
     */
    public void clearOrderSettingJob() {
        log.info("[清理预约设置历史数据]开始......");
        //清理 多余的预约设置历史数据
        try {
            log.info("[清理预约设置历史数据]......");

            Calendar cal = Calendar.getInstance();//拿到当前日历对象(今天)

            //将时、分、秒、毫秒清零  今天00:00:00:00以前的所有预约设置信息都属于历史数据
            cal.set(Calendar.HOUR_OF_DAY, 0);
            cal.set(Calendar.MINUTE, 0);
            cal.set(Calendar.SECOND, 0);
            cal.set(Calendar.MILLISECOND, 0);

            //调用方法,去接口实现方法进行清理业务
            orderSettingService.clearOrderSettingJob(cal.getTime());//日历对象调用方法,拿到对应的date对象
        } catch (Exception e) {
            log.error("[清理预约设置历史数据]异常", e);
        } finally {
            log.info("[清理预约设置历史数据]完成......");
        }
    }


}
